﻿using EnglishAuction.BUS;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EnglishAuction
{
    public partial class CreateUser : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            txtCMND.Attributes.Add("onkeypress", "return isNumberKey(event)");
            txtEror.Text = "";
            txtEror.ForeColor = Color.Red;
            txtEror.Font.Bold = true;
            if (!Page.IsPostBack)
            {
                var lstLoaiNguoiDung = LoaiNguoiDungBUS.GetAll();
                lstLoaiNguoiDung.Insert(0, new LoaiNguoiDung() { Id = 255, TenLoai = "---Chọn---" });
                cbbLoaiNguoiDung.DataSource = lstLoaiNguoiDung;
                cbbLoaiNguoiDung.DataTextField = "TenLoai";
                cbbLoaiNguoiDung.DataValueField = "Id";
                cbbLoaiNguoiDung.DataBind();
            }
        }

        protected void btnReg_Click(object sender, EventArgs e)
        {
            if (NguoiDungBUS.CheckUserName(txtTenTaiKhoan.Text.Trim()))
            {
                txtEror.Text = "- Tài khoản này đã có người sử dụng.";
            }
            else if (NguoiDungBUS.CheckEmail(txtEmail.Text.Trim()))
            {
                txtEror.Text = "- Email này đã có người sử dụng.";
            }
            else if (NguoiDungBUS.CheckCMND(txtCMND.Text.Trim()))
            {
                txtEror.Text = "- CMND này đã có người sử dụng.";
            }
            else
            {
                string pass = Utilities.GeneratePassword(6);
                var nguoiDung = new NguoiDung
                {
                    TaiKhoan = txtTenTaiKhoan.Text.Trim(),

                    GioiTinh = rbNam.Checked ? true : rbNu.Checked,
                    HoTen = txtHoTen.Text.Trim(),
                    SoDienThoai = txtSoDienThoai.Text.Trim(),
                    MatKhau = Utilities.GetMD5Hash(pass),
                    NgaySinh = DateTime.Parse(txtNgaySinh.Text.Trim()),
                    LoaiNguoiDungId = int.Parse(cbbLoaiNguoiDung.SelectedValue),
                    isDelete = false,
                    Email = txtEmail.Text,
                    CMND = txtCMND.Text.Trim(),
                    DiaChi = txtDiaChi.Text.Trim()
                };

                if (NguoiDungBUS.AddNguoiDung(nguoiDung))
                {
                    txtEror.ForeColor = Color.Blue;
                    txtEror.Font.Bold = true;
                    String info = String.Empty;
                    info += "Tài khoản: " + nguoiDung.TaiKhoan + "\n";
                    info += "Mật khẩu: " + pass;
                    Utilities.SendMail(nguoiDung.Email, info, "Thông tin tài khoản");
                    txtEror.Text = "- Tạo tài khoản thành công.";
                    Clear();
                }
                else
                {
                    txtEror.Text = "- Có lỗi trong quá trình đăng ký tài khoản.";
                }
            }
        }

        private void Clear()
        {
            cbbLoaiNguoiDung.SelectedIndex = 0;
            txtTenTaiKhoan.Text = String.Empty;
            txtCMND.Text = String.Empty;
            txtDiaChi.Text = String.Empty;
            txtSoDienThoai.Text = String.Empty;
            txtNgaySinh.Text = String.Empty;
            txtEmail.Text = String.Empty;
            txtHoTen.Text = String.Empty;
        }

        protected void cbbLoaiNguoiDung_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}